package com.xiaoyu.lib_av.datamodel

import `in`.srain.cube.request.JsonData
import `in`.srain.cube.util.StringUtil

class AVTokenInfo private constructor(val token: String) {

    val isEmpty: Boolean
        get() = EMPTY == this

    fun toJson(): JsonData {
        val jsonData = JsonData.newMap()
        jsonData.put("token", token)
        return jsonData
    }

    override fun toString(): String {
        return "CallTokenInfo{" +
                "token='" + token + '\''.toString() +
                '}'.toString()
    }

    companion object {

        private val EMPTY = AVTokenInfo("")

        fun fromJson(data: JsonData): AVTokenInfo {
            val token = data.optString("token")
            return if (StringUtil.isAnyEmpty(token)) EMPTY else AVTokenInfo(token)
        }
    }
}
